@@ -6,7 +6,7 @@ from django_models_ext import BaseModelMixin, SexModelMixin  | 
            ||
| 6 | 6 | 
                from jsonfield import JSONField  | 
            
| 7 | 7 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 
                -from pai2.basemodels import LensmanTypeBoolMixin, LensmanTypeMixin  | 
            |
| 9 | 
                +from kodo.basemodels import LensmanTypeBoolMixin, LensmanTypeMixin  | 
            |
| 10 | 10 | 
                 | 
            
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                class LensmanInfo(BaseModelMixin, LensmanTypeBoolMixin):  | 
            
                @@ -167,8 +167,8 @@ urlpatterns += [  | 
            ||
| 167 | 167 | 
                 | 
            
| 168 | 168 | 
                # 首页相关  | 
            
| 169 | 169 | 
                urlpatterns += [  | 
            
| 170 | 
                - url(r'^pai2/home$', group_views.pai2_home_api, name='pai2_home_api'), # 首页照片信息  | 
            |
| 171 | 
                - url(r'^pai2/tginfo$', tourguidegroup_views.pai2_tginfo_api, name='pai2_tginfo_api'), # 首页旅行团信息  | 
            |
| 170 | 
                + url(r'^kodo/home$', group_views.kodo_home_api, name='kodo_home_api'), # 首页照片信息  | 
            |
| 171 | 
                + url(r'^kodo/tginfo$', tourguidegroup_views.kodo_tginfo_api, name='kodo_tginfo_api'), # 首页旅行团信息  | 
            |
| 172 | 172 | 
                ]  | 
            
| 173 | 173 | 
                 | 
            
| 174 | 174 | 
                # 服务器相关  | 
            
                @@ -11,7 +11,7 @@ from group.models import GroupPhotoInfo  | 
            ||
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                @logit  | 
            
| 13 | 13 | 
                def group_detail(request, group_id):  | 
            
| 14 | 
                -    return render(request, 'page/pai2_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            |
| 14 | 
                +    return render(request, 'page/kodo_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            |
| 15 | 15 | 
                 | 
            
| 16 | 16 | 
                 | 
            
| 17 | 17 | 
                @logit  | 
            
                @@ -22,9 +22,9 @@ def group_photo_detail(request, photo_id):  | 
            ||
| 22 | 22 | 
                 | 
            
| 23 | 23 | 
                @logit  | 
            
| 24 | 24 | 
                def tgu_group_detail(request, admin_id):  | 
            
| 25 | 
                -    return render(request, 'page/pai2_tourguide_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            |
| 25 | 
                +    return render(request, 'page/kodo_tourguide_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            |
| 26 | 26 | 
                 | 
            
| 27 | 27 | 
                 | 
            
| 28 | 28 | 
                @logit  | 
            
| 29 | 29 | 
                def tgu_group_user_detail(request, admin_id):  | 
            
| 30 | 
                -    return render(request, 'page/pai2_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            |
| 30 | 
                +    return render(request, 'page/kodo_user_{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            
                @@ -6,8 +6,7 @@ from django_models_ext import BaseModelMixin  | 
            ||
| 6 | 6 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 7 | 7 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 
                -from pai2.basemodels import LensmanTypeMixin  | 
            |
| 10 | 
                -from photo.models import PhotosInfo  | 
            |
| 9 | 
                +from kodo.basemodels import LensmanTypeMixin  | 
            |
| 11 | 10 | 
                from utils.qiniucdn import qiniu_file_url  | 
            
| 12 | 11 | 
                from utils.redis.rgroup import get_group_photo_thumbup_flag  | 
            
| 13 | 12 | 
                from utils.redis.rorder import get_lensman_order_record  | 
            
                @@ -122,7 +122,7 @@ def tg_group_detail_api(request):  | 
            ||
| 122 | 122 | 
                 | 
            
| 123 | 123 | 
                 | 
            
| 124 | 124 | 
                @logit  | 
            
| 125 | 
                -def pai2_tginfo_api(request):  | 
            |
| 125 | 
                +def kodo_tginfo_api(request):  | 
            |
| 126 | 126 | 
                """ 首页旅行团信息 """  | 
            
| 127 | 127 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 128 | 128 | 
                 | 
            
                @@ -608,7 +608,7 @@ def thumbup_cancel_api(request):  | 
            ||
| 608 | 608 | 
                 | 
            
| 609 | 609 | 
                 | 
            
| 610 | 610 | 
                @logit  | 
            
| 611 | 
                -def pai2_home_api(request):  | 
            |
| 611 | 
                +def kodo_home_api(request):  | 
            |
| 612 | 612 | 
                """ 首页照片信息 """  | 
            
| 613 | 613 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 614 | 614 | 
                     page = int(request.POST.get('page', 1))
               | 
            
                @@ -1,11 +1,11 @@  | 
            ||
| 1 | 
                -# pai2_uwsgi.ini file  | 
            |
| 1 | 
                +# kodo_uwsgi.ini file  | 
            |
| 2 | 2 | 
                [uwsgi]  | 
            
| 3 | 3 | 
                 | 
            
| 4 | 4 | 
                # Django-related settings  | 
            
| 5 | 5 | 
                # the base directory (full path)  | 
            
| 6 | 
                -chdir = /home/paiai/work/pai2  | 
            |
| 6 | 
                +chdir = /home/paiai/work/kodo  | 
            |
| 7 | 7 | 
                # Django's wsgi file  | 
            
| 8 | 
                -module = pai2.wsgi  | 
            |
| 8 | 
                +module = kodo.wsgi  | 
            |
| 9 | 9 | 
                # the virtualenv (full path)  | 
            
| 10 | 10 | 
                # home = /path/to/virtualenv  | 
            
| 11 | 11 | 
                 | 
            
                @@ -15,7 +15,7 @@ master = true  | 
            ||
| 15 | 15 | 
                # maximum number of worker processes  | 
            
| 16 | 16 | 
                processes = 10  | 
            
| 17 | 17 | 
                # the socket (use the full path to be safe  | 
            
| 18 | 
                -socket = /home/paiai/work/pai2/pai2/uwsgi/pai2.sock  | 
            |
| 18 | 
                +socket = /home/paiai/work/kodo/kodo/uwsgi/kodo.sock  | 
            |
| 19 | 19 | 
                # ... with appropriate permissions - may be needed  | 
            
| 20 | 20 | 
                chmod-socket = 777  | 
            
| 21 | 21 | 
                # clear environment on exit  | 
            
                @@ -0,0 +1,35 @@  | 
            ||
| 1 | 
                +# kodo_nginx.conf  | 
            |
| 2 | 
                +  | 
            |
| 3 | 
                +# the upstream component nginx needs to connect to  | 
            |
| 4 | 
                +upstream kodo {
               | 
            |
| 5 | 
                + # server unix:///home/paiai/work/kodo/kodo/uwsgi/kodo.sock; # for a file socket  | 
            |
| 6 | 
                + server 127.0.0.1:8888; # for a web port socket (we'll use this first)  | 
            |
| 7 | 
                +}  | 
            |
| 8 | 
                +  | 
            |
| 9 | 
                +# configuration of the server  | 
            |
| 10 | 
                +server {
               | 
            |
| 11 | 
                + # the port your site will be served on  | 
            |
| 12 | 
                + listen 80;  | 
            |
| 13 | 
                + # the domain name it will serve for  | 
            |
| 14 | 
                + server_name .kodo.xfoto.com.cn; # substitute your machine's IP address or FQDN  | 
            |
| 15 | 
                + charset utf-8;  | 
            |
| 16 | 
                +  | 
            |
| 17 | 
                + # max upload size  | 
            |
| 18 | 
                + client_max_body_size 75M; # adjust to taste  | 
            |
| 19 | 
                +  | 
            |
| 20 | 
                + # Django media  | 
            |
| 21 | 
                +    location /media  {
               | 
            |
| 22 | 
                + alias /home/paiai/work/kodo/media; # your Django project's media files - amend as required  | 
            |
| 23 | 
                + }  | 
            |
| 24 | 
                +  | 
            |
| 25 | 
                +    location /static {
               | 
            |
| 26 | 
                + alias /home/paiai/work/kodo/collect_static; # your Django project's static files - amend as required  | 
            |
| 27 | 
                + }  | 
            |
| 28 | 
                +  | 
            |
| 29 | 
                + # Finally, send all non-media requests to the Django server.  | 
            |
| 30 | 
                +    location / {
               | 
            |
| 31 | 
                + # uwsgi_pass kodo;  | 
            |
| 32 | 
                + proxy_pass http://kodo;  | 
            |
| 33 | 
                + include /home/paiai/work/kodo/kodo/uwsgi/uwsgi_params; # the uwsgi_params file you installed  | 
            |
| 34 | 
                + }  | 
            |
| 35 | 
                +}  | 
            
                @@ -0,0 +1,12 @@  | 
            ||
| 1 | 
                +[program:kodo]  | 
            |
| 2 | 
                +command=/home/paiai/env/bin/uwsgi --ini /home/paiai/work/kodo/kodo/uwsgi/kodo.ini  | 
            |
| 3 | 
                +autostart=true  | 
            |
| 4 | 
                +autorestart=true  | 
            |
| 5 | 
                +startretries=3  | 
            |
| 6 | 
                +exitcodes=0,1,2  | 
            |
| 7 | 
                +stopsignal=KILL  | 
            |
| 8 | 
                +stopasgroup=true  | 
            |
| 9 | 
                +killasgroup=true  | 
            |
| 10 | 
                +stdout_logfile=/var/log/supervisor_kodo_access.log  | 
            |
| 11 | 
                +stderr_logfile=/var/log/supervisor_kodo_error.log  | 
            |
| 12 | 
                +user=paiai  | 
            
                @@ -1,7 +1,7 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                """  | 
            
| 4 | 
                -Django settings for pai2 project.  | 
            |
| 4 | 
                +Django settings for kodo project.  | 
            |
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                Generated by 'django-admin startproject' using Django 1.8.4.  | 
            
| 7 | 7 | 
                 | 
            
                @@ -83,11 +83,11 @@ MIDDLEWARE_CLASSES = (  | 
            ||
| 83 | 83 | 
                 # MIDDLEWARE_CLASSES += ('multidomain.middleware.DomainMiddleware', )
               | 
            
| 84 | 84 | 
                #  | 
            
| 85 | 85 | 
                # URL_CONFIG = (  | 
            
| 86 | 
                -# # (r'^(.+\.)?xfoto\.com\.cn', 'pai2.urls_www'),  | 
            |
| 87 | 
                -# (r'^(.+\.)?api\.pai\.ai', 'pai2.urls_api'),  | 
            |
| 86 | 
                +# # (r'^(.+\.)?xfoto\.com\.cn', 'kodo.urls_www'),  | 
            |
| 87 | 
                +# (r'^(.+\.)?api\.pai\.ai', 'kodo.urls_api'),  | 
            |
| 88 | 88 | 
                # )  | 
            
| 89 | 89 | 
                 | 
            
| 90 | 
                -ROOT_URLCONF = 'pai2.urls'  | 
            |
| 90 | 
                +ROOT_URLCONF = 'kodo.urls'  | 
            |
| 91 | 91 | 
                 | 
            
| 92 | 92 | 
                TEMPLATES = [  | 
            
| 93 | 93 | 
                     {
               | 
            
                @@ -111,7 +111,7 @@ TEMPLATES = [  | 
            ||
| 111 | 111 | 
                },  | 
            
| 112 | 112 | 
                ]  | 
            
| 113 | 113 | 
                 | 
            
| 114 | 
                -WSGI_APPLICATION = 'pai2.wsgi.application'  | 
            |
| 114 | 
                +WSGI_APPLICATION = 'kodo.wsgi.application'  | 
            |
| 115 | 115 | 
                 | 
            
| 116 | 116 | 
                 | 
            
| 117 | 117 | 
                # Database  | 
            
                @@ -119,7 +119,7 @@ WSGI_APPLICATION = 'pai2.wsgi.application'  | 
            ||
| 119 | 119 | 
                 | 
            
| 120 | 120 | 
                 DATABASES = {
               | 
            
| 121 | 121 | 
                # Create Database  | 
            
| 122 | 
                - # CREATE DATABASE pai2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  | 
            |
| 122 | 
                + # CREATE DATABASE kodo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  | 
            |
| 123 | 123 | 
                     'default': {
               | 
            
| 124 | 124 | 
                'ENGINE': 'django.db.backends.mysql',  | 
            
| 125 | 125 | 
                'NAME': 'kodo',  | 
            
                @@ -254,7 +254,7 @@ CURTAIL_UUID_LENGTH = 7 # Used in django-curtail-uuid==1.0.0  | 
            ||
| 254 | 254 | 
                 | 
            
| 255 | 255 | 
                # 水印设置  | 
            
| 256 | 256 | 
                WATERMARK_OR_NOT = False # 水印是否开启  | 
            
| 257 | 
                -WATERMARK_LOGO_PATH = os.path.join(PROJ_DIR, 'static/pai2/img/paiai_water_mark.png').replace('\\', '/')  # 水印图片路径
               | 
            |
| 257 | 
                +WATERMARK_LOGO_PATH = os.path.join(PROJ_DIR, 'static/kodo/img/paiai_water_mark.png').replace('\\', '/')  # 水印图片路径
               | 
            |
| 258 | 258 | 
                 | 
            
| 259 | 259 | 
                # 原图设置  | 
            
| 260 | 260 | 
                LENSMAN_PHOTO_ORIGIN_EXPIRED_MSEL = 604800000 # 摄影师原图过期毫秒数,7d = 7 * 24 * 3600 * 1000msel  | 
            
                @@ -271,14 +271,14 @@ PAI2_HOME_MAX_ROWS = 400 # 首页照片最大数量,PAI2_HOME_PER_PAGE * PAI2  | 
            ||
| 271 | 271 | 
                # 下载页设置  | 
            
| 272 | 272 | 
                 TMPL_DOWNLOAD_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.tmpl.html').replace('\\', '/')
               | 
            
| 273 | 273 | 
                 | 
            
| 274 | 
                -PAI2_USER_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_user_adr_download.html').replace('\\', '/')
               | 
            |
| 275 | 
                -PAI2_USER_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_user_ios_download.html').replace('\\', '/')
               | 
            |
| 274 | 
                +PAI2_USER_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_user_adr_download.html').replace('\\', '/')
               | 
            |
| 275 | 
                +PAI2_USER_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_user_ios_download.html').replace('\\', '/')
               | 
            |
| 276 | 276 | 
                 | 
            
| 277 | 
                -PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_lensman_adr_download.html').replace('\\', '/')
               | 
            |
| 278 | 
                -PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_lensman_ios_download.html').replace('\\', '/')
               | 
            |
| 277 | 
                +PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_lensman_adr_download.html').replace('\\', '/')
               | 
            |
| 278 | 
                +PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_lensman_ios_download.html').replace('\\', '/')
               | 
            |
| 279 | 279 | 
                 | 
            
| 280 | 
                -PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_tourguide_adr_download.html').replace('\\', '/')
               | 
            |
| 281 | 
                -PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/pai2_tourguide_ios_download.html').replace('\\', '/')
               | 
            |
| 280 | 
                +PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_tourguide_adr_download.html').replace('\\', '/')
               | 
            |
| 281 | 
                +PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/kodo_tourguide_ios_download.html').replace('\\', '/')
               | 
            |
| 282 | 282 | 
                 | 
            
| 283 | 283 | 
                # 下载设置  | 
            
| 284 | 284 | 
                PAI2_USER_DOWNLOAD_WX_URL = 'https://a.app.qq.com/o/simple.jsp?pkgname=ai.pai.client'  | 
            
                @@ -386,7 +386,7 @@ WECHAT_BASE_REDIRECT_URI = '{0}/we/base_redirect'.format(DOMAIN_HTTP)
               | 
            ||
| 386 | 386 | 
                 WECHAT_USERINFO_REDIRECT_URI = '{0}/we/userinfo_redirect'.format(DOMAIN_HTTP)
               | 
            
| 387 | 387 | 
                 | 
            
| 388 | 388 | 
                # 消息图片设置  | 
            
| 389 | 
                -PAI2_LOGO_URL = DOMAIN + '/static/pai2/img/paiai_96_96.png'  | 
            |
| 389 | 
                +PAI2_LOGO_URL = DOMAIN + '/static/kodo/img/paiai_96_96.png'  | 
            |
| 390 | 390 | 
                SYSTEM_MESSAGE_AVATAR = PAI2_LOGO_URL  | 
            
| 391 | 391 | 
                COMMENT_MESSAGE_AVATAR = PAI2_LOGO_URL  | 
            
| 392 | 392 | 
                THUMBUP_MESSAGE_AVATAR = PAI2_LOGO_URL  | 
            
                @@ -395,7 +395,7 @@ THUMBUP_MESSAGE_AVATAR = PAI2_LOGO_URL  | 
            ||
| 395 | 395 | 
                 REDIS_CACHE = connector(REDIS.get('default', {}))
               | 
            
| 396 | 396 | 
                 | 
            
| 397 | 397 | 
                 # Q_CLUSTER = {
               | 
            
| 398 | 
                -# 'name': 'pai2',  | 
            |
| 398 | 
                +# 'name': 'kodo',  | 
            |
| 399 | 399 | 
                # 'workers': 8,  | 
            
| 400 | 400 | 
                # 'recycle': 500,  | 
            
| 401 | 401 | 
                # 'timeout': 60,  | 
            
                @@ -411,7 +411,7 @@ DJLOGIT = {
               | 
            ||
| 411 | 411 | 
                'level': 'DEBUG',  | 
            
| 412 | 412 | 
                'class': 'rlog.RedisListHandler',  | 
            
| 413 | 413 | 
                'redis_client': REDIS_CACHE,  | 
            
| 414 | 
                - 'key': 'django:logit:pai2',  | 
            |
| 414 | 
                + 'key': 'django:logit:kodo',  | 
            |
| 415 | 415 | 
                'formatter': 'verbose',  | 
            
| 416 | 416 | 
                }  | 
            
| 417 | 417 | 
                 | 
            
                @@ -1,6 +1,6 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -"""pai2 URL Configuration  | 
            |
| 3 | 
                +"""kodo URL Configuration  | 
            |
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                The `urlpatterns` list routes URLs to views. For more information please see:  | 
            
| 6 | 6 | 
                https://docs.djangoproject.com/en/1.8/topics/http/urls/  | 
            
                @@ -43,7 +43,7 @@ from website import views as website_views  | 
            ||
| 43 | 43 | 
                # router.register(r'photos', photo_views.PhotoInfoViewSet)  | 
            
| 44 | 44 | 
                 | 
            
| 45 | 45 | 
                urlpatterns = [  | 
            
| 46 | 
                - url(r'^pai2admin/', include(admin.site.urls)),  | 
            |
| 46 | 
                + url(r'^kodoadmin/', include(admin.site.urls)),  | 
            |
| 47 | 47 | 
                ]  | 
            
| 48 | 48 | 
                 | 
            
| 49 | 49 | 
                # urlpatterns += [  | 
            
                @@ -72,7 +72,7 @@ urlpatterns = [  | 
            ||
| 72 | 72 | 
                # ]  | 
            
| 73 | 73 | 
                #  | 
            
| 74 | 74 | 
                # urlpatterns += [  | 
            
| 75 | 
                -# url(r'^$', website_views.pai2_home, name='pai2_home'), # 官网首页  | 
            |
| 75 | 
                +# url(r'^$', website_views.kodo_home, name='kodo_home'), # 官网首页  | 
            |
| 76 | 76 | 
                # ]  | 
            
| 77 | 77 | 
                 | 
            
| 78 | 78 | 
                # Mini App  | 
            
                @@ -1,5 +1,5 @@  | 
            ||
| 1 | 1 | 
                """  | 
            
| 2 | 
                -WSGI config for pai2 project.  | 
            |
| 2 | 
                +WSGI config for kodo project.  | 
            |
| 3 | 3 | 
                 | 
            
| 4 | 4 | 
                It exposes the WSGI callable as a module-level variable named ``application``.  | 
            
| 5 | 5 | 
                 | 
            
                @@ -12,6 +12,6 @@ import os  | 
            ||
| 12 | 12 | 
                from django.core.wsgi import get_wsgi_application  | 
            
| 13 | 13 | 
                 | 
            
| 14 | 14 | 
                 | 
            
| 15 | 
                -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pai2.settings")
               | 
            |
| 15 | 
                +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kodo.settings")
               | 
            |
| 16 | 16 | 
                 | 
            
| 17 | 17 | 
                application = get_wsgi_application()  | 
            
                @@ -4,7 +4,7 @@ import sys  | 
            ||
| 4 | 4 | 
                 | 
            
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                if __name__ == "__main__":  | 
            
| 7 | 
                -    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pai2.settings")
               | 
            |
| 7 | 
                +    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kodo.settings")
               | 
            |
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from django.core.management import execute_from_command_line  | 
            
| 10 | 10 | 
                 | 
            
                @@ -7,7 +7,7 @@ from django_models_ext import BaseModelMixin  | 
            ||
| 7 | 7 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                from group.models import GroupPhotoInfo  | 
            
| 10 | 
                -from pai2.basemodels import PaiaiSrcMixin  | 
            |
| 10 | 
                +from kodo.basemodels import PaiaiSrcMixin  | 
            |
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                 | 
            
| 13 | 13 | 
                class UserMessageInfo(BaseModelMixin):  | 
            
                @@ -4,7 +4,7 @@ from django.db import models  | 
            ||
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 5 | 
                from django_models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            
| 6 | 6 | 
                 | 
            
| 7 | 
                -from pai2.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin  | 
            |
| 7 | 
                +from kodo.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin  | 
            |
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                 | 
            
| 10 | 10 | 
                class LatestAppInfo(BaseModelMixin, PaiaiSrcMixin):  | 
            
                @@ -50,10 +50,10 @@  | 
            ||
| 50 | 50 | 
                </div>  | 
            
| 51 | 51 | 
                 | 
            
| 52 | 52 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 53 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 53 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 54 | 54 | 
                <script>  | 
            
| 55 | 55 | 
                             V.initWxData({
               | 
            
| 56 | 
                - imgUrl: 'http://pai.ai/static/pai2/img/paiai_96_96.png',  | 
            |
| 56 | 
                + imgUrl: 'http://pai.ai/static/kodo/img/paiai_96_96.png',  | 
            |
| 57 | 57 | 
                link: 'http://pai.ai/w/o?r=http%3A%2F%2Fkodo.xfoto.com.cn%2Fp%2Fclerk%2Finfo',  | 
            
| 58 | 58 | 
                desc: '店员授权',  | 
            
| 59 | 59 | 
                title: '店员授权',  | 
            
                @@ -176,10 +176,10 @@  | 
            ||
| 176 | 176 | 
                             {% endif %}
               | 
            
| 177 | 177 | 
                </script>  | 
            
| 178 | 178 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 179 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 179 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 180 | 180 | 
                <script>  | 
            
| 181 | 181 | 
                             V.initWxData({
               | 
            
| 182 | 
                - imgUrl: 'http://pai.ai/static/pai2/img/paiai_96_96.png',  | 
            |
| 182 | 
                + imgUrl: 'http://pai.ai/static/kodo/img/paiai_96_96.png',  | 
            |
| 183 | 183 | 
                link: 'http://pai.ai/w/o?r=http%3A%2F%2Fkodo.xfoto.com.cn%2Fp%2Fclerk',  | 
            
| 184 | 184 | 
                desc: '店员授权',  | 
            
| 185 | 185 | 
                title: '店员授权',  | 
            
                @@ -342,10 +342,10 @@  | 
            ||
| 342 | 342 | 
                });  | 
            
| 343 | 343 | 
                </script>  | 
            
| 344 | 344 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 345 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 345 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 346 | 346 | 
                <script>  | 
            
| 347 | 347 | 
                             V.initWxData({
               | 
            
| 348 | 
                - imgUrl: 'http://pai.ai/static/pai2/img/paiai_96_96.png',  | 
            |
| 348 | 
                + imgUrl: 'http://pai.ai/static/kodo/img/paiai_96_96.png',  | 
            |
| 349 | 349 | 
                link: 'http://pai.ai/w/o?r=http%3A%2F%2Fkodo.xfoto.com.cn%2Fp%2Fclerk%2Fsale',  | 
            
| 350 | 350 | 
                desc: '店员授权',  | 
            
| 351 | 351 | 
                title: '店员授权',  | 
            
                @@ -95,7 +95,7 @@  | 
            ||
| 95 | 95 | 
                <div class="container" >  | 
            
| 96 | 96 | 
                <article class="text-center">  | 
            
| 97 | 97 | 
                <a href="http://pai.ai">  | 
            
| 98 | 
                -                <img src="{% static 'pai2/img/paiai_96_96.png' %}" class="logo">
               | 
            |
| 98 | 
                +                <img src="{% static 'kodo/img/paiai_96_96.png' %}" class="logo">
               | 
            |
| 99 | 99 | 
                </a>  | 
            
| 100 | 100 | 
                <div class="title">  | 
            
| 101 | 101 | 
                <a href="http://pai.ai" class="text-blue">拍爱</a>  | 
            
                @@ -149,7 +149,7 @@  | 
            ||
| 149 | 149 | 
                <div class="container">  | 
            
| 150 | 150 | 
                <article class="text-center">  | 
            
| 151 | 151 | 
                <a href="https://pai.ai">  | 
            
| 152 | 
                -                    <img src="{% static 'pai2/img/paiai_96_96.png' %}" class="logo">
               | 
            |
| 152 | 
                +                    <img src="{% static 'kodo/img/paiai_96_96.png' %}" class="logo">
               | 
            |
| 153 | 153 | 
                </a>  | 
            
| 154 | 154 | 
                <div class="title">  | 
            
| 155 | 155 | 
                <a href="https://pai.ai" class="text-blue">拍爱</a>  | 
            
                @@ -186,10 +186,10 @@  | 
            ||
| 186 | 186 | 
                             {% endif %}
               | 
            
| 187 | 187 | 
                </script>  | 
            
| 188 | 188 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 189 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 189 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 190 | 190 | 
                <script>  | 
            
| 191 | 191 | 
                             V.initWxData({
               | 
            
| 192 | 
                - imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",  | 
            |
| 192 | 
                + imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png",  | 
            |
| 193 | 193 | 
                link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Flensman',  | 
            
| 194 | 194 | 
                desc: "摄影师授权",  | 
            
| 195 | 195 | 
                title: "摄影师授权",  | 
            
                @@ -32,7 +32,7 @@  | 
            ||
| 32 | 32 | 
                </head>  | 
            
| 33 | 33 | 
                <body>  | 
            
| 34 | 34 | 
                <div class="container" >  | 
            
| 35 | 
                -            <img id="qr_logo" class="hidden" src="{% static 'pai2/img/paiai_96_96.png' %}">
               | 
            |
| 35 | 
                +            <img id="qr_logo" class="hidden" src="{% static 'kodo/img/paiai_96_96.png' %}">
               | 
            |
| 36 | 36 | 
                <div id="qr" class="qr"></div>  | 
            
| 37 | 37 | 
                </div>  | 
            
| 38 | 38 | 
                 | 
            
                @@ -47,10 +47,10 @@  | 
            ||
| 47 | 47 | 
                });  | 
            
| 48 | 48 | 
                </script>  | 
            
| 49 | 49 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 50 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 50 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 51 | 51 | 
                <script>  | 
            
| 52 | 52 | 
                             V.initWxData({
               | 
            
| 53 | 
                - imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",  | 
            |
| 53 | 
                + imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png",  | 
            |
| 54 | 54 | 
                link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Floginqr',  | 
            
| 55 | 55 | 
                desc: "授权登录",  | 
            
| 56 | 56 | 
                title: "授权登录",  | 
            
                @@ -152,7 +152,7 @@  | 
            ||
| 152 | 152 | 
                 | 
            
| 153 | 153 | 
                <script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script>  | 
            
| 154 | 154 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 155 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 155 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 156 | 156 | 
                <script>  | 
            
| 157 | 157 | 
                             {% if modified %}
               | 
            
| 158 | 158 | 
                             $(function() {
               | 
            
                @@ -251,7 +251,7 @@  | 
            ||
| 251 | 251 | 
                </script>  | 
            
| 252 | 252 | 
                <script>  | 
            
| 253 | 253 | 
                             V.initWxData({
               | 
            
| 254 | 
                - imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",  | 
            |
| 254 | 
                + imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png",  | 
            |
| 255 | 255 | 
                link: 'http://pai.ai/w/o?r=http%3A%2F%2Fpai.ai%2Fp%2Ftourguide',  | 
            
| 256 | 256 | 
                desc: "导游授权",  | 
            
| 257 | 257 | 
                title: "导游授权",  | 
            
                @@ -1,88 +0,0 @@  | 
            ||
| 1 | 
                -# pai2_nginx.conf  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -# the upstream component nginx needs to connect to  | 
            |
| 4 | 
                -upstream pai2 {
               | 
            |
| 5 | 
                - # server unix:///home/paiai/work/pai2/pai2/uwsgi/pai2.sock; # for a file socket  | 
            |
| 6 | 
                - server 127.0.0.1:8888; # for a web port socket (we'll use this first)  | 
            |
| 7 | 
                -}  | 
            |
| 8 | 
                -  | 
            |
| 9 | 
                -# configuration of the server  | 
            |
| 10 | 
                -server {
               | 
            |
| 11 | 
                - # the port your site will be served on  | 
            |
| 12 | 
                - listen 80;  | 
            |
| 13 | 
                - # the domain name it will serve for  | 
            |
| 14 | 
                - server_name .img.pai.ai .img.xfoto.com.cn; # substitute your machine's IP address or FQDN  | 
            |
| 15 | 
                - charset utf-8;  | 
            |
| 16 | 
                -  | 
            |
| 17 | 
                - # max upload size  | 
            |
| 18 | 
                - client_max_body_size 75M; # adjust to taste  | 
            |
| 19 | 
                -  | 
            |
| 20 | 
                - # Django media  | 
            |
| 21 | 
                -    location /  {
               | 
            |
| 22 | 
                - alias /home/paiai/work/pai2/media; # your Django project's media files - amend as required  | 
            |
| 23 | 
                - }  | 
            |
| 24 | 
                -  | 
            |
| 25 | 
                -    location /photo  {
               | 
            |
| 26 | 
                - alias /home/paiai/work/pai2/media/photo; # your Django project's media files - amend as required  | 
            |
| 27 | 
                - }  | 
            |
| 28 | 
                -  | 
            |
| 29 | 
                -    location /fly  {
               | 
            |
| 30 | 
                - alias /home/paiai/work/pai2/media/fly; # your Django project's media files - amend as required  | 
            |
| 31 | 
                - }  | 
            |
| 32 | 
                -}  | 
            |
| 33 | 
                -  | 
            |
| 34 | 
                -# configuration of the server  | 
            |
| 35 | 
                -server {
               | 
            |
| 36 | 
                - # the port your site will be served on  | 
            |
| 37 | 
                - listen 80;  | 
            |
| 38 | 
                - # the domain name it will serve for  | 
            |
| 39 | 
                - server_name .api.pai.ai .api.xfoto.com.cn; # substitute your machine's IP address or FQDN  | 
            |
| 40 | 
                - charset utf-8;  | 
            |
| 41 | 
                -  | 
            |
| 42 | 
                - # max upload size  | 
            |
| 43 | 
                - client_max_body_size 75M; # adjust to taste  | 
            |
| 44 | 
                -  | 
            |
| 45 | 
                - # Django media  | 
            |
| 46 | 
                -    location /media  {
               | 
            |
| 47 | 
                - alias /home/paiai/work/pai2/media; # your Django project's media files - amend as required  | 
            |
| 48 | 
                - }  | 
            |
| 49 | 
                -  | 
            |
| 50 | 
                -    location /static {
               | 
            |
| 51 | 
                - alias /home/paiai/work/pai2/collect_static; # your Django project's static files - amend as required  | 
            |
| 52 | 
                - }  | 
            |
| 53 | 
                -  | 
            |
| 54 | 
                - # Finally, send all non-media requests to the Django server.  | 
            |
| 55 | 
                -    location / {
               | 
            |
| 56 | 
                - # uwsgi_pass pai2;  | 
            |
| 57 | 
                - proxy_pass http://pai2;  | 
            |
| 58 | 
                - include /home/paiai/work/pai2/pai2/uwsgi/uwsgi_params; # the uwsgi_params file you installed  | 
            |
| 59 | 
                - }  | 
            |
| 60 | 
                -}  | 
            |
| 61 | 
                -  | 
            |
| 62 | 
                -# configuration of the server  | 
            |
| 63 | 
                -server {
               | 
            |
| 64 | 
                - # the port your site will be served on  | 
            |
| 65 | 
                - listen 80;  | 
            |
| 66 | 
                - # the domain name it will serve for  | 
            |
| 67 | 
                - server_name .pai.ai .xfoto.com.cn; # substitute your machine's IP address or FQDN  | 
            |
| 68 | 
                - charset utf-8;  | 
            |
| 69 | 
                -  | 
            |
| 70 | 
                - # max upload size  | 
            |
| 71 | 
                - client_max_body_size 75M; # adjust to taste  | 
            |
| 72 | 
                -  | 
            |
| 73 | 
                - # Django media  | 
            |
| 74 | 
                -    location /media  {
               | 
            |
| 75 | 
                - alias /home/paiai/work/pai2/media; # your Django project's media files - amend as required  | 
            |
| 76 | 
                - }  | 
            |
| 77 | 
                -  | 
            |
| 78 | 
                -    location /static {
               | 
            |
| 79 | 
                - alias /home/paiai/work/pai2/collect_static; # your Django project's static files - amend as required  | 
            |
| 80 | 
                - }  | 
            |
| 81 | 
                -  | 
            |
| 82 | 
                - # Finally, send all non-media requests to the Django server.  | 
            |
| 83 | 
                -    location / {
               | 
            |
| 84 | 
                - # uwsgi_pass pai2;  | 
            |
| 85 | 
                - proxy_pass http://pai2;  | 
            |
| 86 | 
                - include /home/paiai/work/pai2/pai2/uwsgi/uwsgi_params; # the uwsgi_params file you installed  | 
            |
| 87 | 
                - }  | 
            |
| 88 | 
                -}  | 
            
                @@ -1,12 +0,0 @@  | 
            ||
| 1 | 
                -[program:pai2]  | 
            |
| 2 | 
                -command=/home/paiai/env/bin/uwsgi --ini /home/paiai/work/pai2/pai2/uwsgi/pai2.ini  | 
            |
| 3 | 
                -autostart=true  | 
            |
| 4 | 
                -autorestart=true  | 
            |
| 5 | 
                -startretries=3  | 
            |
| 6 | 
                -exitcodes=0,1,2  | 
            |
| 7 | 
                -stopsignal=KILL  | 
            |
| 8 | 
                -stopasgroup=true  | 
            |
| 9 | 
                -killasgroup=true  | 
            |
| 10 | 
                -stdout_logfile=/var/log/supervisor_pai2_access.log  | 
            |
| 11 | 
                -stderr_logfile=/var/log/supervisor_pai2_error.log  | 
            |
| 12 | 
                -user=paiai  | 
            
                @@ -14,12 +14,12 @@  | 
            ||
| 14 | 14 | 
                 | 
            
| 15 | 15 | 
                /* For Download Section */  | 
            
| 16 | 16 | 
                             .download_section {position:fixed;right:0;bottom:0;left:0;height:55px;padding:5px;background:#f0f0f0;box-sizing:border-box}
               | 
            
| 17 | 
                -            .pai2_icon {width:45px;height:45px;float:left}
               | 
            |
| 18 | 
                -            .pai2_icon>img {width:100%;height:100%}
               | 
            |
| 19 | 
                -            .pai2_desc {height:45px;padding:5px 0 0 5px;float:left}
               | 
            |
| 20 | 
                -            .pai2_name {padding-top:2px;font-size:14px;text-align:left}
               | 
            |
| 21 | 
                -            .pai2_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
               | 
            |
| 22 | 
                -            .pai2_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
               | 
            |
| 17 | 
                +            .kodo_icon {width:45px;height:45px;float:left}
               | 
            |
| 18 | 
                +            .kodo_icon>img {width:100%;height:100%}
               | 
            |
| 19 | 
                +            .kodo_desc {height:45px;padding:5px 0 0 5px;float:left}
               | 
            |
| 20 | 
                +            .kodo_name {padding-top:2px;font-size:14px;text-align:left}
               | 
            |
| 21 | 
                +            .kodo_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
               | 
            |
| 22 | 
                +            .kodo_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
               | 
            |
| 23 | 23 | 
                /* For PC */  | 
            
| 24 | 24 | 
                             body, .download_section {
               | 
            
| 25 | 25 | 
                max-width: 414px !important;  | 
            
                @@ -35,22 +35,22 @@  | 
            ||
| 35 | 35 | 
                </div>  | 
            
| 36 | 36 | 
                 | 
            
| 37 | 37 | 
                <div id="download_section" class="download_section">  | 
            
| 38 | 
                - <div class="pai2_icon">  | 
            |
| 39 | 
                -                <img src="{% static 'pai2/img/paiai_96_96.png' %}">
               | 
            |
| 38 | 
                + <div class="kodo_icon">  | 
            |
| 39 | 
                +                <img src="{% static 'kodo/img/paiai_96_96.png' %}">
               | 
            |
| 40 | 40 | 
                </div>  | 
            
| 41 | 
                - <div class="pai2_desc">  | 
            |
| 42 | 
                - <div class="pai2_name">拍爱</div>  | 
            |
| 43 | 
                - <div class="pai2_des">即拍即分享</div>  | 
            |
| 41 | 
                + <div class="kodo_desc">  | 
            |
| 42 | 
                + <div class="kodo_name">拍爱</div>  | 
            |
| 43 | 
                + <div class="kodo_des">即拍即分享</div>  | 
            |
| 44 | 44 | 
                </div>  | 
            
| 45 | 
                - <a href="https://api.pai.ai/op/download" target="_blank" id="pai2_download" class="pai2_download">立即下载</a>  | 
            |
| 45 | 
                + <a href="https://api.pai.ai/op/download" target="_blank" id="kodo_download" class="kodo_download">立即下载</a>  | 
            |
| 46 | 46 | 
                </div>  | 
            
| 47 | 47 | 
                 | 
            
| 48 | 48 | 
                <script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script>  | 
            
| 49 | 49 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 50 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 50 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 51 | 51 | 
                <script>  | 
            
| 52 | 52 | 
                             V.initWxData({
               | 
            
| 53 | 
                - imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",  | 
            |
| 53 | 
                + imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png",  | 
            |
| 54 | 54 | 
                link: window.location.href,  | 
            
| 55 | 55 | 
                desc: "我使用拍爱分享了一张美图,你也快来试试吧",  | 
            
| 56 | 56 | 
                title: "拍爱",  | 
            
                @@ -14,12 +14,12 @@  | 
            ||
| 14 | 14 | 
                 | 
            
| 15 | 15 | 
                /* For Download Section */  | 
            
| 16 | 16 | 
                             .download_section {position:fixed;right:0;bottom:0;left:0;height:55px;padding:5px;background:#f0f0f0;box-sizing:border-box}
               | 
            
| 17 | 
                -            .pai2_icon {width:45px;height:45px;float:left}
               | 
            |
| 18 | 
                -            .pai2_icon>img {width:100%;height:100%}
               | 
            |
| 19 | 
                -            .pai2_desc {height:45px;padding:5px 0 0 5px;float:left}
               | 
            |
| 20 | 
                -            .pai2_name {padding-top:2px;font-size:14px;text-align:left}
               | 
            |
| 21 | 
                -            .pai2_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
               | 
            |
| 22 | 
                -            .pai2_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
               | 
            |
| 17 | 
                +            .kodo_icon {width:45px;height:45px;float:left}
               | 
            |
| 18 | 
                +            .kodo_icon>img {width:100%;height:100%}
               | 
            |
| 19 | 
                +            .kodo_desc {height:45px;padding:5px 0 0 5px;float:left}
               | 
            |
| 20 | 
                +            .kodo_name {padding-top:2px;font-size:14px;text-align:left}
               | 
            |
| 21 | 
                +            .kodo_des {padding-top:2px;font-size:12px;line-height:23px;color:#8f8f8f;text-align:left}
               | 
            |
| 22 | 
                +            .kodo_download {position:relative;top:5px;width:100px;height:35px;line-height:35px;text-align:center;background:#d13621;color:#fff;border-radius:5px;float:right;text-decoration:none}
               | 
            |
| 23 | 23 | 
                /* For PC */  | 
            
| 24 | 24 | 
                             body, .download_section {
               | 
            
| 25 | 25 | 
                max-width: 414px !important;  | 
            
                @@ -37,22 +37,22 @@  | 
            ||
| 37 | 37 | 
                </div>  | 
            
| 38 | 38 | 
                 | 
            
| 39 | 39 | 
                <div id="download_section" class="download_section">  | 
            
| 40 | 
                - <div class="pai2_icon">  | 
            |
| 41 | 
                -                <img src="{% static 'pai2/img/paiai_96_96.png' %}">
               | 
            |
| 40 | 
                + <div class="kodo_icon">  | 
            |
| 41 | 
                +                <img src="{% static 'kodo/img/paiai_96_96.png' %}">
               | 
            |
| 42 | 42 | 
                </div>  | 
            
| 43 | 
                - <div class="pai2_desc">  | 
            |
| 44 | 
                - <div class="pai2_name">拍爱</div>  | 
            |
| 45 | 
                - <div class="pai2_des">即拍即分享</div>  | 
            |
| 43 | 
                + <div class="kodo_desc">  | 
            |
| 44 | 
                + <div class="kodo_name">拍爱</div>  | 
            |
| 45 | 
                + <div class="kodo_des">即拍即分享</div>  | 
            |
| 46 | 46 | 
                </div>  | 
            
| 47 | 
                - <a href="https://api.pai.ai/op/download" target="_blank" id="pai2_download" class="pai2_download">立即下载</a>  | 
            |
| 47 | 
                + <a href="https://api.pai.ai/op/download" target="_blank" id="kodo_download" class="kodo_download">立即下载</a>  | 
            |
| 48 | 48 | 
                </div>  | 
            
| 49 | 49 | 
                 | 
            
| 50 | 50 | 
                <script type="text/javascript" src="//cdn.bootcss.com/zepto/1.1.6/zepto.min.js"></script>  | 
            
| 51 | 51 | 
                <script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>  | 
            
| 52 | 
                -        <script type="text/javascript" src="{% static 'pai2/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 52 | 
                +        <script type="text/javascript" src="{% static 'kodo/js/jswe-0.0.4.js' %}"></script>
               | 
            |
| 53 | 53 | 
                <script>  | 
            
| 54 | 54 | 
                             V.initWxData({
               | 
            
| 55 | 
                - imgUrl: "http://pai.ai/static/pai2/img/paiai_96_96.png",  | 
            |
| 55 | 
                + imgUrl: "http://pai.ai/static/kodo/img/paiai_96_96.png",  | 
            |
| 56 | 56 | 
                link: window.location.href,  | 
            
| 57 | 57 | 
                desc: "我使用拍爱分享了一张美图,你也快来试试吧",  | 
            
| 58 | 58 | 
                title: "拍爱",  | 
            
                @@ -1,6 +1,6 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -from pai2.basemodels import PlatformMixin  | 
            |
| 3 | 
                +from kodo.basemodels import PlatformMixin  | 
            |
| 4 | 4 | 
                from utils.redis.connect import r  | 
            
| 5 | 5 | 
                from utils.redis.rkeys import APP_PATCH_INFO  | 
            
| 6 | 6 | 
                 | 
            
                @@ -1,6 +1,6 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                -from pai2.basemodels import PlatformMixin  | 
            |
| 3 | 
                +from kodo.basemodels import PlatformMixin  | 
            |
| 4 | 4 | 
                from utils.redis.connect import r  | 
            
| 5 | 5 | 
                from utils.redis.rkeys import APP_SETTINGS_INFO  | 
            
| 6 | 6 | 
                 | 
            
                @@ -4,5 +4,5 @@ from django.conf import settings  | 
            ||
| 4 | 4 | 
                from django.shortcuts import redirect  | 
            
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                 | 
            
| 7 | 
                -def pai2_home(request):  | 
            |
| 7 | 
                +def kodo_home(request):  | 
            |
| 8 | 8 | 
                return redirect(settings.WEBSITE_MOBI if request.mobile else settings.WEBSITE_PC)  |